#ifndef _KYOSHO_STC_COMM_2011_12_24_
#define _KYOSHO_STC_COMM_2011_12_24_


#define True   0x1
#define False  0x0

#define MID_FILTER_WINDOW 8

#ifndef M_PI
#define M_PI 3.1415927
#endif

#ifndef F32
#define F32 float
#endif

#ifndef U8
#define U8 unsigned char //(0~255)
#endif

#ifndef S8
#define S8 signed char	 //(-128~127)
#endif

#ifndef U16
#define U16 unsigned short	//(0~65535)
#endif

#ifndef S16
#define S16 short			//(-32767~32766)
#endif

#ifndef U32
#define U32 unsigned int	//(0~4294967295)
#endif

#ifndef S32
#define S32 int
#endif

//#define NULL ((void *)0)

typedef union {
	U16 un_temp16;
	U8  un_temp8[2];
}uni_16;


#ifndef SDelete
	#define SDelete( ptr )    do { if ( ptr ) { free ( ptr ); ( ptr ) = NULL; } } while(0)
#endif //SDelete

U8 BitTest(U8 num,U8 pos);
U8 BitClr(U8 num,U8 pos);
U8 BitSet(U8 num,U8 pos);
U8 BitCpl(U8 num,U8 pos);
U8 BitGet(U8 num,U8 pos);


F32 Deg2Rad(F32 a);
F32 Rad2Deg(F32 a);
F32 normalizeRad(F32 a);
void delay(void);

F32 F_MidFilter(F32 data);
void Clear_F_Filter(void);
U32 I_MidFilter(U32 data);
void Clear_I_Filter(void);

void CRC16(U8 *Array, U8 *Rcvbuf,U16 Len);
#endif //_KYOSHO_STC_COMM_2011_12_24_

